package com.tudouji.project.bill.service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.tudouji.framework.web.domain.AjaxResult;
import com.tudouji.project.bill.domain.Sellform;
import com.tudouji.project.bill.domain.Transferapply;
import com.tudouji.project.bill.domain.Whoutform;
import com.tudouji.project.bill.domain.Whoutformitem;
import com.tudouji.project.system.domain.SysUser;

/**
 * 出库单Service接口
 * 
 * @author wf
 * @date 2021-01-12
 */
public interface IWhoutformService 
{
    /**
     * 查询出库单
     * 
     * @param autoid 出库单ID
     * @return 出库单
     */
    public Whoutform selectWhoutformById(Long autoid);

    /**
     * 查询出库单列表
     * 
     * @param whoutform 出库单
     * @return 出库单集合
     */
    public List<Whoutform> selectWhoutformList(Whoutform whoutform);

    /**
     * 新增出库单
     * 
     * @param whoutform 出库单
     * @return 结果
     */
    public int insertWhoutform(Whoutform whoutform);

    /**
     * 修改出库单
     * 
     * @param whoutform 出库单
     * @return 结果
     */
    public int updateWhoutform(Whoutform whoutform);

    /**
     * 批量删除出库单
     * 
     * @param autoids 需要删除的出库单ID
     * @return 结果
     */
    public int deleteWhoutformByIds(Long[] autoids);

    /**
     * 删除出库单信息
     * 
     * @param autoid 出库单ID
     * @return 结果
     */
    public int deleteWhoutformById(Long autoid);

    /**
     * 出库单列表查询
     *
     */
    public List<Whoutform> findWhoutformList(Whoutform whoutform);

    String saveTransferWhout(List<Whoutformitem> items, Whoutform entity);

    List<Whoutform> findDetail(Whoutform whoutform);

    public Whoutform selectWhoutformByOrderId(String orderId);

    List<Whoutform> selectWhoutformsHistory();

    public Whoutform selectWhoutformByGuid(String whoutid);

    AjaxResult saveWhoutFormAndImg(Long id, Whoutform entity, String fileIds, String opinion, Long taskid, String opttype);

    AjaxResult printWhout(Long autoid);

    AjaxResult printWhoutHtml(Long autoid);

    public void generateNewWhoutform(ArrayList<Whoutform> whoutforms, Sellform sellform);
    public void whinoutBack(SysUser user, String guid, Integer businessType,List<Whoutform> whoutformList);


    public void whoutBack(String orderguid, Date backDatedDate, List<Whoutform> whoutformList);
}
